在先前的幾篇文章裡,講到了 docker的概念、及 K8s 的基礎架構:各式各樣的controller和volume的設置,那麼今天來講講近年來也是一個滿大的新聞,也就是k8s官方棄用dockershim、以及近期興起、號稱docker對手的podman 這兩件事吧
Podman是一套由紅帽公司 RedHat 推出的容器管理工具組(全名是 pod manager),它存在的目的就是要取代docker管理 OCI 容器和 pod (A tool for managing OCI containers and pods),相較於 docker,podman擁有以下特點:
OCI (open container initiative)為一個開放原始碼的共通容器標準,為Clound Natives基金會自2016年提出的新一套關於runtime和image的規範,其重點是映像的輕量化、runtime改用runC等,詳情請見OCI的網站
podman跟docker之間的劇烈討論是從這篇 Don't Panic: Kubernetes and Docker | Kubernetes文章的發布開始,文章內容大致內容,就是之前作為 docker 和 k8s 之間的容器介面 dockershim 被k8s 團隊停止維護,而支援轉向CRI-O 和containerd ,而 CRI-O 和 containerd 正是 podman 採用的 OCI的預設runtime,因此有些用戶也開始著手進行從docker到podman的遷徙。
當然,docker 被 k8s 棄用不代表 dockert 的衰亡,docker仍有podman無法取代的地方,此事件僅是代表 dockershim 從 1.24 版的 k8s去除而已,也許之後docker也說不定會投向 OCI 的懷抱呢!